package com.clientmanage.service;

import com.clientmanage.domain.bean.Customer;
import com.baomidou.mybatisplus.extension.service.IService;
import com.clientmanage.domain.vo.clientInfoVo;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author HUANG
 * @since 2025-06-30
 */
public interface ICustomerService extends IService<Customer> {
    /**
     * 多表联查客户信息，支持分页和条件查询
     */
    List<clientInfoVo> getClientInfoList(String name, String phone, String petName, String petBreed, int pageNum, int pageSize);

    /**
     * 新增或更新客户信息（多表）
     * @param vo 客户信息VO
     */
    void saveOrUpdateClientInfo(clientInfoVo vo);
    
    /**
     * 删除客户
     * @param id 客户ID
     */
    void deleteCustomerById(String id);
    
    /**
     * 新增宠物
     * @param vo 宠物信息VO
     */
    void addPet(clientInfoVo vo);
    
    /**
     * 更新宠物
     * @param vo 宠物信息VO
     */
    void updatePet(clientInfoVo vo);
    
    /**
     * 删除宠物
     * @param id 宠物ID
     */
    void deletePetById(String id);
    
    /**
     * 新增疫苗记录
     * @param vo 疫苗信息VO
     */
    void addVaccine(clientInfoVo vo);
    
    /**
     * 更新疫苗记录
     * @param vo 疫苗信息VO
     */
    void updateVaccine(clientInfoVo vo);
    
    /**
     * 删除疫苗记录
     * @param id 疫苗记录ID
     */
    void deleteVaccineById(String id);
    
    /**
     * 升级为会员
     * @param customerId 客户ID
     * @param memberLevel 会员等级
     */
    void upgradeToMember(String customerId, String memberLevel);
}
